package com.gopay.common.domain.cps.fee;

import com.gopay.common.domain.BaseEntity;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 手续费计提批量任务表
 * Created by Light on 2016/7/4.
 */
@Entity
@Table(name = "FEE_WITHDRAW_BATCH_TASK")
public class FeeWithdrawBatchTask extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String taskId;
    /** 付款单生成时间 */
    private Date createdTs;
    /** 总金额 */
    private BigDecimal totalAmt;
    /** 总笔数 */
    private String totalCount;
    /** 提取申请时间 */
    private Date applyTs;
    /** 申请操作员 */
    private String applyOperId;
    /** 提取审核时间 */
    private Date auditTs;
    /** 审核操作员 */
    private String auditOperId;
    /** 提取确认时间 */
    private Date confirmTs;
    /** 确认操作员 */
    private String confirmOperId;

    @Id
    @Column(name = "TASK_ID", unique = true, nullable = false)
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    @Column(name = "CREATED_TS")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getCreatedTs() {
        return createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    @Column(name = "TOTAL_AMT", precision = 25, scale = 4)
    public BigDecimal getTotalAmt() {
        return totalAmt;
    }

    public void setTotalAmt(BigDecimal totalAmt) {
        this.totalAmt = totalAmt;
    }

    @Column(name = "TOTAL_COUNT", length = 20)
    public String getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(String totalCount) {
        this.totalCount = totalCount;
    }

    @Column(name = "APPLY_TS")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getApplyTs() {
        return applyTs;
    }

    public void setApplyTs(Date applyTs) {
        this.applyTs = applyTs;
    }

    @Column(name = "APPLY_OPER_ID", length = 6)
    public String getApplyOperId() {
        return applyOperId;
    }

    public void setApplyOperId(String applyOperId) {
        this.applyOperId = applyOperId;
    }

    @Column(name = "AUDIT_TS")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getAuditTs() {
        return auditTs;
    }

    public void setAuditTs(Date auditTs) {
        this.auditTs = auditTs;
    }

    @Column(name = "AUDIT_OPER_ID", length = 6)
    public String getAuditOperId() {
        return auditOperId;
    }

    public void setAuditOperId(String auditOperId) {
        this.auditOperId = auditOperId;
    }

    @Column(name = "CONFIRM_TS")
    @Temporal(TemporalType.TIMESTAMP)
    public Date getConfirmTs() {
        return confirmTs;
    }

    public void setConfirmTs(Date confirmTs) {
        this.confirmTs = confirmTs;
    }

    @Column(name = "CONFIRM_OPER_ID", length = 6)
    public String getConfirmOperId() {
        return confirmOperId;
    }

    public void setConfirmOperId(String confirmOperId) {
        this.confirmOperId = confirmOperId;
    }
}
